greedy implementation sortings strings *1100

Please click on ads to support us..

C++ Code:

#include <bits/stdc++.h>

using namespace std;

int main() {
    string s;
    cin >> s;

    auto f = [&](int pos) -> pair<int, int> {
        int maxPos = -1;
        int cnt = 0;
        for (int i = pos; i < s.size(); i++) {
            if (maxPos == -1 || s[i] > s[maxPos]) {
                maxPos = i;
                cnt = 1;
            } else if (s[i] == s[maxPos]) {
                cnt++;
                maxPos = i;
            }
        }

        return {cnt, maxPos};
    };

    string ans;
    int l = 0;
    while (l < s.size()) {
        auto [cnt, pos] = f(l);
        for (int i = 0; i < cnt; i++)
            ans += s[pos];
        l = pos + 1;
    }

    cout << ans;
}/*1690811307.0023844*/


Comments

Submit
0 Comments
More Questions

734A - Anton and Danik
1300B - Assigning to Classes
1647A - Madoka and Math Dad
710A - King Moves
1131A - Sea Battle
118A - String Task
236A - Boy or Girl
271A - Beautiful Year
520B - Two Buttons
231A - Team
479C - Exams
1030A - In Search of an Easy Problem
158A - Next Round
71A - Way Too Long Words
160A - Twins
1A - Theatre Square
1614B - Divan and a New Project
791A - Bear and Big Brother
1452A - Robot Program
344A - Magnets
96A - Football
702B - Powers of Two
1036A - Function Height
443A - Anton and Letters
1478B - Nezzar and Lucky Number
228A - Is your horseshoe on the other hoof
122A - Lucky Division
1611C - Polycarp Recovers the Permutation
432A - Choosing Teams
758A - Holiday Of Equality